package com.sxbbc.common.basics.emails;

import org.springframework.stereotype.Component;

import com.function.common.GetRest;
import com.function.common.RestResponse;
import com.sxbbc.common.basics.exceptions.ThrowJsonException;
import com.sxbbc.common.basics.service.config.Config;

@Component
public class MailUtils {
	
	public static MailUtils mailUtils = null;

	public static MailUtils getInstance() {
		if (mailUtils == null) {
			synchronized (MailUtils.class) {
				if (mailUtils == null) {
					mailUtils = new MailUtils();
				}
			}
		}
		return mailUtils;
	}
	public RestResponse sendEmail(String email,String content) {
	    	try {
	    		//请根据实际 accesskey 和 secretkey 进行开发，以下只作为演示 sdk 使用
	    		// 邮件类型，0 事务投递，其他的为商业投递量
	    		int type=0;
	    		// 拓展字段
	    		String ext="";
	    		// 必须 管理控制台中配置的发信地址(登陆后台查看发信地址)
	    		String fromEmail="mail@service.shuojianghu.com";
	    		//// 必须 ,如果为true是的时候，replyEmail必填，false的时候replyEmail可以为空
	    		Boolean needToReply=false;
	    		 // 如果needToReply为true是的时候,则为必填,false的时候replyEmail可以为空
	    		String replyEmail=""; 
	    		// 必须 目标邮件地址
	    		String toEmail=email; 
	    		//// 可选 发信人昵称,
	    		// 必须 邮件主题。
	    		String subject="验证码";
	    		// 必须 邮件 html 正文。
	    		String htmlBody=content;
	    		// 可选 取值范围 0~1: 1 为打开数据跟踪功能; 0 为关闭数据跟踪功能。该参数默认值为
	    		String clickTrace="1";
	    		String readTrace="1";
		    	EmailSingleSender singleSender = new EmailSingleSender(Config.properties.getAccesskey(),Config.properties.secretkey);
		    	EmailSingleSenderResult singleSenderResult=singleSender.send(type, fromEmail, toEmail,Config.properties.fromAlias, needToReply, replyEmail, subject, htmlBody, clickTrace,readTrace, ext);
		    if(singleSenderResult.getResult()!=0) {
		    		return GetRest.getFail(singleSenderResult.getErrmsg());
		    }
		    return GetRest.getSuccess("发送成功");
	    	} catch (Exception e) {
			throw new ThrowJsonException("发送邮件失败");
		}
	}
}
